package com.xxxy.model;

import java.io.Serializable;
import java.util.List;

public class Page<T> implements Serializable {
	// 统一分页参数命名
	private int pageNum;       // 当前页码（替代currentPage/page）
	private int pageSize;      // 每页数量（替代count/limit）
	private int totalRecords;  // 总记录数（替代totalCount）
	private int totalPages;    // 总页数（替代totalPage）
	private List<T> data;      // 分页数据（替代pageRes）
	private int page;       // 当前页码
	private int limit;      // 每页数量
	// 兼容性方法
	public int getCurrentPage() {
		return this.page;
	}

	public int getCount() {
		return this.limit;
	}

	// 推荐使用的新方法
	public int getPage() {
		return page;
	}

	// 计算起始位置
	public int getStartRow() {
		return (this.page - 1) * this.limit;
	}
	// 构造方法
	public Page() {}

	public Page(int pageNum, int pageSize) {
		this.pageNum = pageNum;
		this.pageSize = pageSize;
	}

	// 计算起始位置（统一实现）
	public int getStartIndex() {
		return (pageNum - 1) * pageSize;
	}

	// 计算总页数
	public void calculateTotalPages() {
		this.totalPages = (int) Math.ceil((double) totalRecords / pageSize);
	}

	// Getter/Setter（省略冗余方法）
	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalRecords() {
		return totalRecords;
	}

	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
		calculateTotalPages(); // 自动计算总页数
	}

	public int getTotalPages() {
		return totalPages;
	}

	public List<T> getData() {
		return data;
	}

	public void setData(List<T> data) {
		this.data = data;
	}
}